namespace Angelus.Data.Linq.ProviderBase
{
	using System;
	using System.Data.DLinq.ProviderBase;
    using System.Expressions;

    /// <summary>
    /// 
    /// </summary>
    internal class OracleRefCursor : SqlCursor
    {
        #region Fields

        private SqlParameter _parameter;
        private SqlUserQuery _query;

        #endregion

        #region Constructors

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sourceExpression"></param>
        internal OracleRefCursor(Expression sourceExpression)
            : base(sourceExpression)
        {
        }

        #endregion

        #region Properties

        /// <summary>
        /// 
        /// </summary>
        public SqlParameter Parameter
        {
            get { return this._parameter; }
            set
            {
                if (null == value)
                {
                    throw new ArgumentNullException("Parameter");
                }
                this._parameter = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        public SqlUserQuery UserQuery
        {
            get { return this._query; }
            set
            {
                if (null == value)
                {
                    throw new ArgumentNullException("UserQuery");
                }
                this._query = value;
            }
        }

        #endregion
    }
}